Handling multiple asynchronous threads for updating a document presents significant challenges as there can be multiple threads that are needing to access the same parts of the document. For example, if there are two or more threads attempting to access an object (e.g., make changes to a data visualization in a visual analyzer application) at the same time, the object's integrity can potentially be compromised. Typically, in the past, a system would lock the entire document and permit only user action to access the document at a time. However, it is inefficient to allow a single user to perform one action at a time. There is a need for a more efficient system that can allow multiple asynchronous calls into the same document while maintaining the integrity of the various objects that are part of the document.